/**
 * @(#)ErrorMessageWidget.java 2011
 * Copyright 2011 classic-commerce
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 *
 * This class represents the cart summary widget that displays, at a glance, the
 * basic details of the content of the current cart. It allows the user to see
 * the quantity of items current in the cart and the sub total (without
 * applying the applicable taxes) amount cost of the items.
 *
 * This class facilitates the management of error messages and
 * the <code>Widget</code> widgets to associated with them.
 *
 * @author: <a href="mailto:richard@ioniq.ca">Richard Mutezintare</a>
 *
 */

package ca.ioniq.client.widget;

import java.util.HashMap;
import java.util.Map;

import ca.ioniq.client.ClassicMessages;

import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.Widget;

public class ErrorMessageWidget extends FlowPanel {

    private static final String ID = "errorMsg";
    private static final String ERROR = "error";

    private ClassicMessages messages;

    private Map errorMap = new HashMap<Widget, String>();

    public ErrorMessageWidget(ClassicMessages messages) {
        this.messages = messages;
        getElement().setId(ID);
    }

    public void addError(Widget w, String msg) {
        w.getElement().setClassName(ERROR);
        errorMap.put(w, msg);
    }

    public void removeErrorMessage(Widget w) {
        w.removeStyleName(ERROR);
        errorMap.remove(w);
    }

    public void clearErrors() {
        errorMap.clear();
    }

}
